import java.sql.*;
public class M_Prestatario {
    
    private SQLHandler SQL;
    String tiposPrestatarios[];
    int codigosTiposPrestatarios[];
    int numeroTiposPrestatarios;
  	
  	int prt_cod;
	String prt_tipo; 
	String prt_rut;
	String prt_apellidos;
	String prt_nombres;
	String prt_telefono;
	String prt_direccion;
	String prt_curso;
	String prt_situacionActual;
	String prt_prestamosEnCurso;
	int prt_prestamosEnCurso_int;
	int prt_tipo_cod;
	Object resultadoBusqueda[][];
	int numeroResultados;
  
    public M_Prestatario(){
    	SQL = new SQLHandler();
    }
    
   
    public void agregarPrestatario(String rut, String apellidos, String nombres, String cursoAsociado, String telefonoContacto, String direccion, int idTipoPrestatario){
    	try{
    	
    	SQL.insertUpdate("insert into prestatario(prestatario_tipo_cod,prestatario_rut,prestatario_apellidos,prestatario_nombres,prestatario_telefono,prestatario_direccion,prestatario_curso,prestatario_situacionactual,prestatario_prestamos_en_curso) values ("+idTipoPrestatario+",\""+rut+"\",\""+apellidos+"\",\""+nombres+"\",\""+telefonoContacto+"\",\""+direccion+"\",\""+cursoAsociado+"\",\"AL DIA\",0);");
    
    }catch(Exception e){}
    
    }
    
    public void getTiposPrestatarios(){
    	tiposPrestatarios=new String[20];
    	codigosTiposPrestatarios=new int[20];
    	try{
	    	ResultSet res=SQL.select("Select * from prestatario_tipo");
	    	     	 
	    	while(res.next()){
	    	tiposPrestatarios[numeroTiposPrestatarios]=res.getString("prestatario_tipo_nombre");
	    	codigosTiposPrestatarios[numeroTiposPrestatarios]=res.getInt("prestatario_tipo_cod");	
	    	numeroTiposPrestatarios++;	
	    	}
	            	
	    	SQL.stmt.close();
	        SQL.conn.close();
    	}catch(Exception e){System.out.println(e.getMessage());}
    }

	public Boolean existeRut(String rut){
		try{
			ResultSet res=SQL.select("Select * from prestatario where prestatario_rut=\""+rut+"\";");
			if(res.next()){
				SQL.stmt.close();
				SQL.conn.close();
				System.out.println("rutXISTE");
		
		    	return true;
		    }else{
		    	SQL.stmt.close();
				SQL.conn.close();
		    	System.out.println("rutNOEXISTE");
		    	return false;
		}
		
		}catch(Exception e){return true;}

	}     

	public void eliminarPrestatario(String rut){
		try{
			SQL.insertUpdate("delete from prestatario where prestatario_rut=\""+rut+"\"");
		System.out.println("llega!!!");
		}catch(Exception e){}
	
	}

	public void getDatos(String rut){
		try{
		ResultSet res=SQL.select("Select * from prestatario where prestatario_rut=\""+rut+"\";");
		
		while(res.next()){
			
	
			prt_cod=res.getInt("prestatario_cod");
	
	
		//prt_tipo=res.getString("prestatario_tipo_nombre"); 
		prt_rut=res.getString("prestatario_rut");
		prt_apellidos=res.getString("prestatario_apellidos");
		prt_nombres=res.getString("prestatario_nombres");
		prt_telefono=res.getString("prestatario_telefono");
		prt_direccion=res.getString("prestatario_direccion");
		prt_curso=res.getString("prestatario_curso");
		prt_situacionActual=res.getString("prestatario_situacionactual");
		prt_prestamosEnCurso=res.getString("prestatario_prestamos_en_curso");
		prt_prestamosEnCurso_int=res.getInt("prestatario_prestamos_en_curso");
		}
		SQL.stmt.close();
	    SQL.conn.close();
	
		}
		catch(Exception e){System.out.println("EXEPCION!!!");}
		
			
			
	}

	public void getDatos(int codigo){
		try{
		ResultSet res=SQL.select("Select * from prestatario where prestatario_cod="+codigo+";");
		
		while(res.next()){
			
	
			prt_cod=res.getInt("prestatario_cod");
	
	
		//prt_tipo=res.getString("prestatario_tipo_nombre"); 
		prt_rut=res.getString("prestatario_rut");
		prt_apellidos=res.getString("prestatario_apellidos");
		prt_nombres=res.getString("prestatario_nombres");
		prt_telefono=res.getString("prestatario_telefono");
		prt_direccion=res.getString("prestatario_direccion");
		prt_curso=res.getString("prestatario_curso");
		prt_situacionActual=res.getString("prestatario_situacionactual");
		prt_prestamosEnCurso=res.getString("prestatario_prestamos_en_curso");
		prt_prestamosEnCurso_int=res.getInt("prestatario_prestamos_en_curso");
		prt_tipo_cod=res.getInt("prestatario_tipo_cod");
		}
		SQL.stmt.close();
	    SQL.conn.close();
	
		}
		catch(Exception e){System.out.println("EXEPCION!!!");}
		
			
			
	}
	public static void main(String ased[]){
		try{
		M_Prestatario a= new M_Prestatario();
		}
		catch(Exception e){}
	}
	
	//AL DIA
	//PRESTAMO EN CURSO
	//MULTADO
	//SUSPENDIDO
	//PRESTAMO MASIVO EN CURSO
	public void setSituacionActual(String rut, String estado){
		try{
	   
	   	SQL.insertUpdate("update prestatario set  prestatario_situacionActual=\""+estado+"\" where prestatario_rut=\""+rut+"\";");
	    System.out.println("rut: "+rut+"");
	    }catch(Exception e){System.out.println(e.getMessage());}
		
	}
	
	public void subirPrestamosEnCurso(String rut){
		getDatos(rut);
		prt_prestamosEnCurso_int++;
		try{
	   
	   	SQL.insertUpdate("update prestatario set  prestatario_prestamos_en_curso="+prt_prestamosEnCurso_int +" where prestatario_rut=\""+rut+"\";");
	    System.out.println("rut: "+rut+" prestamosencurso:  "+prt_prestamosEnCurso_int+"");
	    }catch(Exception e){System.out.println(e.getMessage());}
		
	}
	
	//no ejecutar antes de getDatos
	public void bajarPrestamosEnCurso(){
		prt_prestamosEnCurso_int--;
		try{
	   
	   	SQL.insertUpdate("update prestatario set  prestatario_prestamos_en_curso="+prt_prestamosEnCurso_int +" where prestatario_rut=\""+prt_rut+"\";");
	   }catch(Exception e){System.out.println(e.getMessage());}
		
	}
	
	public void anularMulta(int pre_cod){
		try{
			SQL.insertUpdate("update prestatario set prestatario_situacionactual=\"AL DIA\" where prestatario_cod="+pre_cod+" ");
		}catch(Exception e){System.out.println("ERROR anularmultaprestat= "+ e.getMessage());}
		
		
		
	}
	
	public void buscarPrestatario(int tipoPrestatario, String rut, String apellidos, String nombres, String direccion, String curso, String telefono, String situacionActual, boolean cualquieraSelected){
		resultadoBusqueda=new Object[2000][10];
		numeroResultados=0;
		ResultSet res;
		try{
		
		if(cualquieraSelected){
			res=SQL.select("Select * from prestatario where PRESTATARIO_RUT like '%"+rut+"%' and PRESTATARIO_apellidos like '%"+apellidos+"%' and PRESTATARIO_nombres like '%"+nombres+"%' and PRESTATARIO_direccion like '%"+direccion+"%' and PRESTATARIO_telefono like '%"+telefono+"%' and PRESTATARIO_curso like '%"+curso+"%' and PRESTATARIO_situacionactual= \""+situacionActual+"\"  ");
		}else{
			res=SQL.select("Select * from prestatario where PRESTATARIO_TIPO_COD="+tipoPrestatario+" and PRESTATARIO_RUT like '%"+rut+"%' and PRESTATARIO_apellidos like '%"+apellidos+"%' and PRESTATARIO_nombres like '%"+nombres+"%' and PRESTATARIO_direccion like '%"+direccion+"%' and PRESTATARIO_telefono like '%"+telefono+"%' and PRESTATARIO_curso like '%"+curso+"%' and PRESTATARIO_situacionactual= \""+situacionActual+"\"  ");
		}
		while(res.next())
	            {
	            	resultadoBusqueda[numeroResultados][0]=res.getInt("PRESTATARIO_COD");
	            	resultadoBusqueda[numeroResultados][1]=res.getInt("PRESTATARIO_TIPO_COD");
	            	resultadoBusqueda[numeroResultados][2]=res.getString("PRESTATARIO_RUT");
	            	resultadoBusqueda[numeroResultados][3]=res.getString("PRESTATARIO_APELLIDOS");
	            	resultadoBusqueda[numeroResultados][4]=res.getString("PRESTATARIO_NOMBRES");
	            	resultadoBusqueda[numeroResultados][5]=res.getString("PRESTATARIO_TELEFONO");
	            	resultadoBusqueda[numeroResultados][6]=res.getString("PRESTATARIO_DIRECCION");
	            	resultadoBusqueda[numeroResultados][7]=res.getString("PRESTATARIO_CURSO");
	            	resultadoBusqueda[numeroResultados][8]=res.getString("PRESTATARIO_SITUACIONACTUAL");
	            	resultadoBusqueda[numeroResultados][9]=res.getInt("PRESTATARIO_PRESTAMOS_EN_CURSO");
	            	numeroResultados++;
	            
	               
	    }
		}catch(Exception e){}
		
	}
	
	public void buscarPrestatario(int tipoPrestatario, String rut, String apellidos, String nombres, String direccion, String curso, String telefono, boolean cualquieraSelected){
		resultadoBusqueda=new Object[1000][10];
		numeroResultados=0;
		ResultSet res;
		try{
		if(cualquieraSelected){
			res=SQL.select("Select * from prestatario where PRESTATARIO_RUT like '%"+rut+"%' and PRESTATARIO_apellidos like '%"+apellidos+"%' and PRESTATARIO_nombres like '%"+nombres+"%' and PRESTATARIO_direccion like '%"+direccion+"%' and PRESTATARIO_telefono like '%"+telefono+"%' and PRESTATARIO_curso like '%"+curso+"%'  ");
	
		
		
		}else{
			res=SQL.select("Select * from prestatario where PRESTATARIO_TIPO_COD="+tipoPrestatario+" and PRESTATARIO_RUT like '%"+rut+"%' and PRESTATARIO_apellidos like '%"+apellidos+"%' and PRESTATARIO_nombres like '%"+nombres+"%' and PRESTATARIO_direccion like '%"+direccion+"%' and PRESTATARIO_telefono like '%"+telefono+"%' and PRESTATARIO_curso like '%"+curso+"%'  ");
	
		}
		while(res.next())
	            {
	            	resultadoBusqueda[numeroResultados][0]=res.getInt("PRESTATARIO_COD");
	            	resultadoBusqueda[numeroResultados][1]=res.getInt("PRESTATARIO_TIPO_COD");
	            	resultadoBusqueda[numeroResultados][2]=res.getString("PRESTATARIO_RUT");
	            	resultadoBusqueda[numeroResultados][3]=res.getString("PRESTATARIO_APELLIDOS");
	            	resultadoBusqueda[numeroResultados][4]=res.getString("PRESTATARIO_NOMBRES");
	            	resultadoBusqueda[numeroResultados][5]=res.getString("PRESTATARIO_TELEFONO");
	            	resultadoBusqueda[numeroResultados][6]=res.getString("PRESTATARIO_DIRECCION");
	            	resultadoBusqueda[numeroResultados][7]=res.getString("PRESTATARIO_CURSO");
	            	resultadoBusqueda[numeroResultados][8]=res.getString("PRESTATARIO_SITUACIONACTUAL");
	            	resultadoBusqueda[numeroResultados][9]=res.getInt("PRESTATARIO_PRESTAMOS_EN_CURSO");
	            	numeroResultados++;
	            
	               
	    }
		}catch(Exception e){}
				
	}

	public void editarDatos(int cod_prt,int tipoPrestatario,String apellidos, String rut,String nombres , String curso, String telefono, String direccion){
	try{
		
	SQL.insertUpdate("Update prestatario set PRESTATARIO_TIPO_COD="+tipoPrestatario+" , PRESTATARIO_RUT=\""+rut+"\" , PRESTATARIO_APELLIDOS=\""+apellidos+"\" , PRESTATARIO_NOMBRES= \""+nombres+"\" , PRESTATARIO_TELEFONO=\""+telefono+"\" , PRESTATARIO_DIRECCION=\""+direccion+"\" , PRESTATARIO_CURSO=\""+curso+"\" where PRESTATARIO_COD="+cod_prt+" ");	
	}catch(Exception e){
		
	}
	}
	
	public void agregarTipoPrestatario(String nombreTipo, String descripcionTipo){
	try{
		
	SQL.insertUpdate("insert into prestatario_tipo(PRESTATARIO_TIPO_NOMBRE, PRESTATARIO_TIPO_DESCRIPCION) values (\""+nombreTipo+"\",\""+descripcionTipo+"\")  ");	
	}catch(Exception e){
		
	}
	
	}
	
	public boolean eliminarTipoPrestatario(int idTipo){
	try{
		
	return SQL.insertUpdate("delete from prestatario_tipo where prestatario_tipo_cod="+idTipo+"  ");	
	}catch(Exception e){
		
	}
	return false;
	}
	
  	
}
